//这里存放 个人中心 相关的路由
//加载db模块
const db = require('../db');

const express = require('express');
const { md5 } = require('utility');

const router = express.Router();

//--------------------获取用户信息接口---------------------------
router.get('/userinfo', async (req, res) => {
    //客户端发来请求，作为接口，把当前登录账号的信息获取到，响应给客户端
    // console.log(req.user);//{ id: 6, iat: 1595813325, exp: 1595986125 }
    // let r = await db('select * from user where id=?', 登录账号的id);
    let r = await db('select * from user where id=?', req.user.id);
    if (r && r.length > 0) {
        res.send({ status: 0, message: '获取用户信息成功', data: r[0] });
    } else {
        res.send({ status: 1, message: '获取用户信息失败' });
    }
});

//--------------------更新用户信息接口---------------------------
router.post('/userinfo', async (req, res) => {
    //客户端在请求体中提交id nickname  email到达接口
    console.log(req.body);
    // return;
    let r = await db('update user set ? where id=?', [req.body, req.body.id]);
    if (r && r.affectedRows > 0) {
        res.send({ status: 0, message: '更新用户信息成功' });
    } else {
        res.send({ status: 1, message: '更新用户信息失败' });
    }
});

//--------------------重置密码接口-------------------------------
router.post('/updatepwd', async (req, res) => {
    // console.log(req.body);//{ oldPwd: '111111', newPwd: '123456' }
    //需要对密码进行加密
    let oldPwd = md5(req.body.oldPwd);
    let newPwd = md5(req.body.newPwd);
    //如果你不知道接口做什么，想想liulongbin的接口
    //长度提示  新旧密码不能相同  两次密码一致 这些前端验证了
    //判断原密码是否正确  注意要加id条件判断
    let r = await db('select * from user where password=? and id=?', [oldPwd, req.user.id]);
    if (r && r.length > 0) {
        //如果原密码正确，那么就更新密码即可
        let r1 = await db('update user set password=? where id=?', [newPwd, req.user.id]);
        if (r1 && r1.affectedRows > 0) {
            res.send({ status: 0, message: '更新密码成功' });
        } else {
            res.send({ status: 1, message: '更新密码失败' });
        }
    } else {
        res.send({ status: 1, message: '原密码错误' });
    }
});


//--------------------更换头像----------------------------------
router.post('/update/avatar', async (req, res) => {
    //接收base64格式的字符串，直接更新用户的头像即可（字符串很长）
    let r = await db('update user set user_pic=? where id=?', [req.body.avatar, req.user.id]);
    if (r && r.affectedRows > 0) {
        res.send({ status: 0, message: '更换头像成功' });
    } else {
        res.send({ status: 1, message: '更换头像失败' });
    }
});


module.exports = router;